﻿//
// Copyright (c) 2010
// by Ashish Agrawal and Chris Paterra
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
// documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
// to permit persons to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions 
// of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
// DEALINGS IN THE SOFTWARE.
//

using DotNetNuke.Entities.Portals;
using SimpleBlog.Components.Entities;
using System.Collections.Generic;
using SimpleBlog.Components.Controllers;
using DotNetNuke.Services.Sitemap;
using System.Linq;

namespace SimpleBlog.Components.Providers 
{

	public class Sitemap : SitemapProvider
	{

		#region Public Methods

		/// <summary>
		/// 
		/// </summary>
		/// <param name="portalID"></param>
		/// <param name="ps"></param>
		/// <param name="version"></param>
		/// <returns></returns>
		public override List<SitemapUrl> GetUrls(int portalID, PortalSettings ps, string version) {
			var blog = new SimpleBlogController();
			var colEntries = blog.GetPublishedPortalEntries(portalID);

            //return colEntries.Select(GetBlogUrl).ToList();
		    return null;
		}

		#endregion

		#region Private Methods

		/// <summary>
		/// 
		/// </summary>
		/// <param name="objEntry"></param>
		/// <returns></returns>
		private static SitemapUrl GetBlogUrl(EntryInfo objEntry) {
			var pageUrl = new SitemapUrl
			              	{
			              		Url =
			              			DotNetNuke.Common.Globals.NavigateURL(objEntry.TabID, "ViewEntry", "mid=" + objEntry.ModuleId,
			              			                                      "EntryID=" + objEntry.EntryId),
			              		Priority = (float) 0.5,
			              		LastModified = objEntry.LastModifiedOnDate,
			              		ChangeFrequency = SitemapChangeFrequency.Daily
			              	};

			return pageUrl;
		}

		#endregion

	}
}